iT邦幫忙

2025 iThome 鐵人賽

DAY 10
0
DevOps

DevOps 進化論:從全能型戰士到安全守門員系列 第 10

Day 10 : 單體架構到微服務架構 ─ 為Kubernetes打下基礎

  • 分享至 

  • xImage
  •  

● 前言

Day 9 我們已經學會如何用 Docker 將應用程式容器化。
但問題來了:為什麼要容器化?
其中一個關鍵原因,就是要支撐「不同的軟體架構模式」,特別是微服務架構。

1.單體式架構 (Monolithic)

•特色:

所有功能都在一個專案內,打包成單一可部署單元。
部署快、早期開發成本低。

•缺點:

系統龐大時,改一個小功能也需要重建與重新部署整個應用。
耦合度高,維護與擴展困難。

https://ithelp.ithome.com.tw/upload/images/20250823/201781567lHtWOWGCb.png

2.微服務架構 (Microservices)

•特色:

將應用程式完全拆解成獨立的服務(User Service、Order Service、Payment Service…)。
每個服務可以獨立開發、測試、部署與擴展。

•優勢:

擴展性強:高流量模組(例如訂單)可以單獨水平擴展。
技術多樣性:不同服務可用最適合的技術棧。

•挑戰:

服務之間的通訊、資料一致性、監控、部署管理都更複雜。

https://ithelp.ithome.com.tw/upload/images/20250823/20178156EQtTZet3YP.png

3.單體模組化架構 (Modular Monolith)

•特色:

雖然還是單一部署單元,但內部會依模組拆分職責(例如:user 模組、order 模組)。
減少部分耦合性,讓開發團隊可以在模組層級分工。

•缺點:

部署還是整包一起,不能針對單一模組獨立擴展或獨立部署。
(此處放你的「單體模組化架構」圖)

https://ithelp.ithome.com.tw/upload/images/20250823/201781561OQA4K3rvY.png

● Docker 與 Kubernetes 的角色

• 為什麼需要 Docker?

微服務數量龐大,沒有容器化很難做到一致的部署與運行環境。

• 為什麼需要 Kubernetes?

服務拆成十幾個、上百個後,需要編排工具(K8s)幫忙:自動部署、擴展、監控與復原。

● 總結

單體式 → 模組化 → 微服務,代表系統規模不同階段的演進。
https://ithelp.ithome.com.tw/upload/images/20250823/20178156ZmOs276vEH.png
微服務能帶來彈性與擴展性,但也需要更強大的基礎設施來支援。

👉 下一篇,我們就要實際看看 如何用 Kubernetes 建立 Pod,將容器部署到叢集裡


上一篇
Day 9:Docker 容器化與映像檔建立(打包專案)
下一篇
Day 11:Kubernetes 入門(部署應用程式到 Minikube)
系列文
DevOps 進化論:從全能型戰士到安全守門員19
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言